/*
 * keyboard.h
 *
 * Controle e gerenciamento do teclado
 * Lista de Teclas e funcao de inicializacao do teclado.
 *
 *  Created on: 22/09/2010
 *      Author: wendell
 */

#ifndef KEYBOARD_H_
#define KEYBOARD_H_


// Teclas do teclado
#define ESC 27
#define BACKSPACE '\b'
#define TAB '\t'
#define AGUDO 0
#define CRASE 96
#define ENTER '\n'
#define CEDILHA 135
#define MCEDILHA 128
#define EURO 156
#define A_ORD 166
#define O_ORD 167

#define SPACE 0x20 // espaco em branco ' '
//Teclas de controle
#define CAPS 0

#define PRINTSCREEN 0
#define NUMLOCK 0
#define SCROLL_LOCK 0
#define HOME 0
#define UP 0
#define PAGE_UP 0
#define LEFT 0
#define RIGHT 0
#define END 0
#define DOWN 0
#define PAGE_DOWN 0
#define INSERT 0
#define DELETE 0

#define L_SHIFT 0
#define R_SHIFT 0
#define CTRL 0
#define ALT 0

//Teclas especiais
#define L_SHIFT_IN 0x2A  //42
#define L_SHIFT_OUT 0xAA //42+128
#define R_SHIFT_IN 0x36  //54
#define R_SHIFT_OUT 0xB6 //54+128

#define ALT_IN 0X38  //56
#define ALT_OUT 0XB8 //184


// Teclas FN - Para implementar...
enum {
	F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12
};

#include <system.h>
#include <io.h>

Buffer keyboardBuffer;


// io/keyboard.c
void keyboardInstall(void);

#endif /* KEYBOARD_H_ */
